$(document).ready(function(){
  $("#register-box-launcher").fancybox();
  $("#login-box-launcher").fancybox();
  $("#lang-form-launcher").fancybox();
  
  $("#lang_selector").bind("change", function(){
      alert("I'll change the language, I promise");
  });
  
  $("#login_form").bind("submit", function() {
    if ($("#username").val().length < 1 || $("#password").val().length < 1) {
      $("#login_error").show();
      $.fancybox.resize();
      return false;
    }
    
    $.fancybox.showActivity();
        
    $.ajax({
      type    : "POST",
      cache : false,
      url   : "/login",
      data    : $(this).serializeArray(),
      success: function(data) {
        $.fancybox(data);
      }
    });
    return false;
  });
   
   
  $("#register_form").bind("submit", function() {
    var errorMsg = "";
    var mail = $("#usermail").val();
    var mailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
    var validMail = mailPattern.test(mail);
    console.log("mail:" + validMail);
    if ($("#usershortname").val().length < 3) {
      errorMsg = "El nombre de usuario deber tener al menos 3 letras.";
    } else if($("#userfullname").val().length < 4) { //FIXME: Regexp
      errorMsg += "Debe ingresar su nombre real.";
    } else if($("#userpass").val().length < 5) {
      errorMsg += "La contraseña es muy corta.";
    } else if($("#userpass").val() != $("#userpassmatch").val()) {
      errorMsg += "Las contraseñas deben coincidir.";
    } else if( !validMail || mail.length < 5) {
      errorMsg += "Debe ingresar una dirección de correo electrónico válida.";
    }
      
    if(errorMsg != ""){
      $("#register_error").text(errorMsg);
      $("#register_error").show();
      $.fancybox.resize();
      return false;  
    } else {
      $.fancybox.showActivity();
      
      $.ajax({
        type    : "POST",
        cache : false,
        url   : "/register",
        data    : $(this).serializeArray(),
        success: function(data) {
          $.fancybox(data);
        }
      });
            
    }
    return false;
  });
});
